'use strict';

var path=require('path');
module.exports = appInfo => {
  const config = exports = {};
  // use for cookie sign key, should change to your own and keep security
  //cookie字符串
  config.keys = appInfo.name + '_1526975129074_6030';


  config.security = {
    csrf: {
      enable: false,
      ignoreJSON: true
    },
    methodnoallow: {
      enable: false,
    },
    //domainWhiteList: ['http://localhost:8041']
    domainWhiteList:'*'
  };
  config.cors = { 
    origin:['http://localhost:8041'],
    //origin:'*',
    allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH'
  };
  // config.static={
  //   prefix:'/public/',
  //   maxAge:0,
  //   dir:path.join(appInfo.baseDir,'app/public')
  // }
  
  config.mongoose = {
    url: 'mongodb://127.0.0.1/egg',
    options: {},
  };
  config.i18n={
    defaultLocale: 'zh-CN',
    queryField: 'locale',
    cookieField: 'locale',
    // Cookie 默认一年后过期， 如果设置为 Number，则单位为 ms
    cookieMaxAge: '1y',
  }
  config.session={
    key:'eggs',
    maxAge:24*60*60*1000,
    httpOnly: true,
  encrypt: true,
  renew: true,
  }
  config.security={
    csrf: false
  }
  config.logger={
    level: 'DEBUG',
    allowDebugAtProd: true,
  }
  //view 配置，设置引擎和.html编译引擎
  config.view={
    defaultViewEngine: 'nunjucks',
    mapping: {
      '.html': 'nunjucks',
    },
  }
  config.news = {
    pageSize: 5,
    //serverUrl: 'https://hacker-news.firebaseio.com/v0',
    serverUrl:'http://localhost:7001/public/json'
  };
   // 配置需要的中间件，数组顺序即为中间件的加载顺序
  config.middleware=[
    'robot','gzip'
  ]
  config.bodyParser= {
    jsonLimit: '1mb',
    formLimit: '1mb',
  };
  config.robot={
    ua:[
      ///curl/i,
      /Baiduspider/i,
    ]
  }
  config.logger={
    level:'debug',
    dir:'logs/'
  }
   // 配置 gzip 中间件的配置
  config.gzip={
    threshold: 1024, // 小于 1k 的响应体不压缩
  };
  config.static={
    maxAge: 31536000,
  }
  config.mysql = {
    // 单数据库信息配置
    client: {
      // host
      host: 'localhost',
      // 端口号
      port: '3306',
      // 用户名
      user: 'root',
      // 密码
      password: 'ST_ar4868522',
      // 数据库名
      database: 'koa_demo',
    },
    // 是否加载到 app 上，默认开启
    app: true,
    // 是否加载到 agent 上，默认关闭
    agent: false,
  }
  //该配置最终将在启动时合并到 app.config.appMiddleware。
  return config;
};
